<html>
<head><meta charset="utf-8"><title>ARM intrinsics? · t-libs/stdarch · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/index.html">t-libs/stdarch</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html">ARM intrinsics?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="200310972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200310972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200310972">(Jun 10 2020 at 01:26)</a>:</h4>
<p>What would be the process for getting progress made on the <code>arm</code> and <code>aarch64</code> intrinsics?</p>
<p>It seems that currently there's some of it in Nightly. However, the number of intrinsics available seems to be in the "hundreds" amount, not really in the "thousands" amount as one might expect if the full set of Neon was there.</p>
<p>(1) short term, what's the process for adding more ARM intrinsics to Nightly?</p>
<p>(2) long term, would T-libs want <em>all</em> of Neon fully set and working before stabilizing any of it, or would stabilizing groups of operations be preferred, or what's the story there?</p>



<a name="200316378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200316378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200316378">(Jun 10 2020 at 03:24)</a>:</h4>
<p>The same question got asked about AVX512. The current stance is that we would like all of the base NEON intrinsics implemented before stabilizing it.</p>



<a name="200316396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200316396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200316396">(Jun 10 2020 at 03:25)</a>:</h4>
<p>The process for adding intrinsics to nightly is to implement them in stdarch and then send a PR to bump the submodule in rust-lang/rust.</p>



<a name="200317170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200317170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200317170">(Jun 10 2020 at 03:46)</a>:</h4>
<p>Ah, i found the issue for it buried on the last page: <a href="https://github.com/rust-lang/stdarch/issues/148">https://github.com/rust-lang/stdarch/issues/148</a></p>



<a name="200317184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200317184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200317184">(Jun 10 2020 at 03:47)</a>:</h4>
<p>Question: <em>how much</em> does one truly benefit from an intrinsic compared to a one-liner of inline-asm?</p>



<a name="200319494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200319494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200319494">(Jun 10 2020 at 04:57)</a>:</h4>
<p>Constant propagation, better instruction scheduling.</p>



<a name="200319502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/200319502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#200319502">(Jun 10 2020 at 04:57)</a>:</h4>
<p>Generally the compiler can optimize the code better.</p>



<a name="204418927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/204418927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#204418927">(Jul 20 2020 at 13:02)</a>:</h4>
<p><span class="user-mention" data-user-id="143274">@Amanieu</span> as the list of intrinsics grows, it seems like it will become a pain to have the LLVM extern declarations in one place and the actual function in another.</p>
<p>Since each extern decl is used in just one place, would it be fine to just put the extern declaration <em>inside</em> the intrinsic that uses it? I seem to recall that's how some of the x86/x64 intrinsics were set up.</p>



<a name="204418994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/208962-t-libs/stdarch/topic/ARM%20intrinsics%3F/near/204418994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/208962-t-libs/stdarch/topic/ARM.20intrinsics.3F.html#204418994">(Jul 20 2020 at 13:03)</a>:</h4>
<p>That's fine.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>